package cn.edu.klmy.dao;

import java.util.List;
import java.util.Map;

import cn.edu.klmy.models.studylog.StudyLog;
import cn.edu.klmy.models.studylog.StudyLogSituation;

/**
 * 学习情况基础设施接口。
 */
public interface IStudyLogDao {
    /**
     * 增加学习情况。
     * @param studyLog 学习情况
     */
    void addStudyLog(StudyLog studyLog);

    /**
     * 删除学习情况。
     * @param studyLogId 学习情况ID
     */
    void removeStudyLog(int studyLogId);

    /**
     * 更新学习情况。
     * @param studyLog 学习情况
     */
    void updateStudyLog(StudyLog studyLog);

    /**
     * 模糊查询学生数据，分页数据，如果不需要分页，可以将pageSize设置足够大。
     * @param filter key与value的map，value可以是精确值，也可以模糊值
     * @param pageNum 页码
     * @param pageSize 每页个数
     * @return 学生集合
     */
    List<StudyLog> getStudyLogs(int studentId, int classId);
}
